#ifndef __ATOMIZER_H
#define __ATOMIZER_H

#ifdef __cplusplus
#extern "C" {
#endif

#include "driver/gpio.h"
#include "driver/ledc.h"
    
#include "main.h"

typedef struct atomizer_s atomizer_t;

/**
 * @brief 雾化器控制结构体
 */
struct atomizer_s
{
    gpio_num_t     atomizer_gpio; // 雾化器GPIO引脚
    uint32_t       freq;          // PWM频率
    ledc_timer_t   ledc_timer;    // LEDC定时器
    ledc_channel_t ledc_channel;  // LEDC通道
    bool           enable_flag;   // 使能状态
    float          duty_rate;     // 占空比
};

extern atomizer_t atomizer1;

esp_err_t atomizer_init(atomizer_t *atomizer);                                          
esp_err_t atomizer_on(atomizer_t *atomizer);                                          
esp_err_t atomizer_off(atomizer_t *atomizer);                                          
esp_err_t atomizer_duty_rate_set(atomizer_t *atomizer, float duty_rate);                                          

#ifdef __cplusplus
}
#endif

#endif
